package com.zx.onlineeducation.service.vod.controller;

import com.zx.onlineeducation.common.util.R;
import com.zx.onlineeducation.service.vod.service.VodService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

/**
 * VOD视频点播 前端控制器
 *
 * @author 郑雪
 * @since 2022-01-16
 */
@Api(tags = "视频上传和播放")
@RestController
@RequestMapping("/vod")
@CrossOrigin // 解决跨域
public class VodController {

    /**
     * Vod视频点播服务接口
     */
    @Autowired
    private VodService vodService;

    @ApiOperation("上传视频")
    @PostMapping("/upload")
    public R uploadVodFile(
            @ApiParam(value = "上传的文件", required = true)
            MultipartFile file) {

        // 如果上传文件是空
        if(file.isEmpty()) {
            // 返回失败
            return R.error().message("上传文件不能为空！");
        }

        // 上传文件到Vod服务器，得到视频ID
        String videoId = vodService.uploadVideo(file);

        // 返回成功
        return R.ok().data("videoId", videoId);
    }

    @ApiOperation("删除视频")
    @DeleteMapping("/remove/{videoIds}")
    public R removeVodFile(
            @ApiParam(value = "视频Ids字符串，支持传入多个视频ID，多个用逗号分隔", required = true)
            @PathVariable("videoIds") String videoIds)  {

        // 如果视频Ids是空
        if(StringUtils.isEmpty(videoIds)) {
            // 返回失败
            return R.error().message("云端视频资源Ids不能为空！");
        }

        // 执行删除
        boolean remove = vodService.removeVideoByIds(videoIds);

        // 返回结果
        return remove ? R.ok() : R.error();
    }
}
